iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Modern Web

Laravel 那麼好用還需要自幹框架嗎系列 第 2

Day 02:框架架構、Hello World

  • 分享至 

  • xImage
  •  

要開始撰寫一個類似 Laravel 的框架之前,

首先我們要了解 Laravel 原本的做法是怎麼做的

我們可以到 Laravel 框架原始碼的 github 先看看

https://github.com/laravel/laravel

這邊的程式碼,就是當我們執行 composer create-project laravel/laravel 這個指令時,所建立的原始碼來源

我們來看看專案的 composer.json

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The skeleton application for the Laravel framework.",
    "keywords": ["laravel", "framework"],
    "license": "MIT",
    "require": {
        "php": "^8.2",
        "laravel/framework": "^11.9",
        "laravel/tinker": "^2.9"
    }
}

這邊我們可以看到,這個檔案內宣告了專案的名字、類型,以及簡單的說明。更重要的是還說明了專案內主要相依的套件。

這個專案內主要相依的套件,是 "laravel/framework" 這個套件,套件的 github 位於 https://github.com/laravel/framework

這個套件內包含了 Laravel 內主要的功能,像是 ORM、認證、檔案系統⋯⋯等等。

為什麼要這樣設計呢?

透過將功能拆分成腳手架(The skeleton application for the Laravel framework.)和框架核心兩塊,當我們在撰寫程式時,可以依據腳手架內的模板設置,來規範我們檔案的架構。另外,在升級的時候,我們也可以只升級框架核心的部分,而不影響我們所撰寫的程式。

要參考這樣的做法,我們也一樣需要兩個 github repo,我們先試著做一個 laravel/laravel 出來

Hello World

首先,我們要試著先做出一個 PHP 的 Hello World 專案。

由於我們沒有 Laravel Sail 這麼方便的工具來幫我們設置環境了,我們這邊需要使用 docker,來建立一個原生的 PHP 專案環境。

這邊我們參考 https://docs.docker.com/guides/language/php/containerize/ 這個文章,來快速的生成一個可以運作 PHP 的環境

首先我們 clone 一份官方提供的範例

 git clone https://github.com/docker/docker-php-sample

接著進到 docker-php-sample 內,執行

docker init

這邊要特別注意一下,如果 docker 版本太舊的話,會無法使用 init 這個指令,只要更新 docker 版本並重啟就好。

執行過後,應該就可以看到專案內有 compose.yaml 這個檔案,這時候我們再執行

docker compose up --build

就可以在 http://localhost:9000/hello.php 上看到 hello world 了!

今天的環境建置就到這邊,我們明天見!


上一篇
Day 01:Laravel 那麼好用,還需要自幹框架嗎
下一篇
Day 03:串接框架核心
系列文
Laravel 那麼好用還需要自幹框架嗎18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言